subprocess 会分别返回执行成功和失败的结果
import subprocess
command = input('请输入系统命令如 ipconfig dir 或者 错误的命令 pwd:')
res = subprocess.Popen(
command, # 系统命令
shell=True, # 是否执行命令
stdout=subprocess.PIPE, # 将执行成功的值保存到管道中,这里的管道有点类似队列,只能取一次去完就没有
stderr=subprocess.PIPE # 将执行失败的值保存到管道中
)
# 因为window系统的编码是gbk所以返回的bytes类型也是gbk的,如果使用utf-8解码会报错
print('执行成功的返回值:' + res.stdout.read().decode('gbk'))
print('执行失败的返回值:' + res.stderr.read().decode('gbk'))